package com.rainszj.service;

import com.rainszj.pojo.po.BlogAndTag;
import com.rainszj.pojo.po.Tag;
import java.util.List;

/**
 * @author rainszj
 * 2020/3/13
 */
public interface TagService {

    /**
     * 保存标签
     *
     * @param tag
     * @return
     */
    int saveTag(Tag tag);

    /**
     * 根据 ID移除标签
     *
     * @param id
     * @return
     */
    int removeTag(Long id);

    /**
     * 根据 Id 修改标签
     *
     * @param id
     * @param tag
     * @return
     */
    int updateTag(Long id, Tag tag);


    /**
     * 根据 ID 查询标签
     *
     * @param id
     * @return
     */
    Tag queryTagById(Long id);

    /**
     * 根据标签名称查询
     *
     * @param name
     * @return
     */
    Tag queryTagByName(String name);

    /**
     * 与 Blog表做连接查询
     *
     * @return
     */
    List<Tag> listAllTag();

    /**
     * 查询管理的所有标签
     *
     * @return
     */
    List<Tag> listAdminTag();

    /**
     * String类型的 tags装换成List集合
     *
     * @param tags
     * @return
     */
    List<Tag> stringTagsToList(String tags);

    /**
     * 查询 BlogAndTag 表中是否存在已有的主键
     * @param tagId
     * @param blogId
     * @return
     */
    BlogAndTag queryBlogAndTag(Long tagId, Long blogId);

}
